#!/bin/bash

# SmartInput 管理后台构建脚本
# 专门用于构建 React 管理后台

set -e  # 遇到错误立即退出

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 项目根目录
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ADMIN_DIR="$PROJECT_ROOT/admin-panel"

# 打印带颜色的消息
print_message() {
    local color=$1
    local message=$2
    echo -e "${color}${message}${NC}"
}

# 主函数
main() {
    print_message $GREEN "🔨 SmartInput 管理后台构建脚本"
    print_message $BLUE "================================"
    
    # 检查管理后台目录
    if [ ! -d "$ADMIN_DIR" ]; then
        print_message $RED "❌ 管理后台目录不存在: $ADMIN_DIR"
        exit 1
    fi
    
    # 进入管理后台目录
    cd "$ADMIN_DIR"
    
    # 检查依赖
    if [ ! -d "node_modules" ]; then
        print_message $YELLOW "📦 安装管理后台依赖..."
        npm install
    fi
    
    # 构建管理后台
    print_message $YELLOW "🔨 构建管理后台..."
    if npm run build; then
        print_message $GREEN "✅ 管理后台构建成功"
        print_message $BLUE "   📍 构建产物: $PROJECT_ROOT/server/public/"
        print_message $BLUE "   🌐 访问地址: https://localhost:3002"
    else
        print_message $RED "❌ 管理后台构建失败"
        exit 1
    fi
    
    print_message $BLUE "================================"
    print_message $GREEN "🎉 构建完成！"
    print_message $YELLOW "💡 提示: 如果服务器正在运行，管理后台将自动生效"
}

# 执行主函数
main "$@" 